#include <cstdio>
using namespace std;

int searched[25]={0};
int result[25];
int n,sum;
int params[25];

int dfs(int passNum,int num,int v){
    if (v>sum)
        return 0;
    if (passNum==n){
        if (v==sum){
            result[passNum]=num;
            return 1;
        }
        else
            return 0;
    }
    searched[num]=1;
    for (int j=1;j<=n;j++){
        if (!searched[j] && dfs(passNum+1,j,v+params[passNum]*j)){ 
            result[passNum]=num;
            return 1;
        }
    }
    searched[num]=0;
    return 0;
}

int main(void){
    scanf("%d%d",&n,&sum);
    params[0]=params[n-1]=1;
    if (n>1){
        for (int i=1;i*2<n;i++)
            params[i]=params[n-1-i]=(n-i)*params[i-1]/i;
	}
        
    if (dfs(0,0,0)){
        for (int i=1;i<=n;i++){
            printf("%d ",result[i]);
		}
	}
    return 0;
}

